import { defineStore } from 'pinia'

// 第一个参数是应用程序中 store 的唯一 id
export const state = defineStore('state', {
	unistorage: true,
	state: () => {
		return {
			someState: 'hello pinia55',
			someState2: 2999,
			someState3: 'vode'
		}
	},
	getters: {
		// this修改state的方式需要自己手动指定返回值类型。
		doubleCount(): number {
			return this.someState2 * 2
		},
		// 自动将返回类型推断为数字
		doubleCount2(state) {
			return state.someState2 * 2
		}
	},
	actions: {
		// 直接使用this修改state
		changeName(params: string) {
			this.someState3 = params
			return 'success'
		},
		// 异步action
		async fetchData(params: number) {
			const response = await fetch(`https://jsonplaceholder.typicode.com/todos/${params}`)
			const res = response.json()

			// 调用其他action
			// this.changeName("xxx");

			return res
		}
	}
})
